package com.baitiaojun.common.enums.impl;

import cn.hutool.core.util.ArrayUtil;
import com.baitiaojun.common.enums.Enums;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;

import java.util.Arrays;

@ApiModel("操作员类型")
@AllArgsConstructor
public enum OperatorTypeEnums implements Enums {
    /**
     * 其它
     */
    OTHER(0, "其他"),
    /**
     * 后台用户
     */
    MANAGE(1, "后台用户"),
    /**
     * 手机端用户
     */
    MOBILE(2, "手机端用户");

    private final Integer code;

    private final String name;

    @Override
    public Enums valueOf(Integer code) {
        return ArrayUtil.firstMatch(item -> item.getCode().equals(code), values());
    }

    @Override
    public int[] array() {
        return Arrays.stream(values()).mapToInt(OperatorTypeEnums::getCode).toArray();
    }

    @Override
    public Integer getCode() {
        return code;
    }

    @Override
    public String getName() {
        return name;
    }
}
